Conventional low cost Universal Serial Bus (USB) joysticks are inaccurate. Such inaccuracy is not acceptable for the end user. Improved accuracy of conventional USB joysticks require numerous (and costly) external components.
In particular, conventional low cost solutions for reading a potentiometer rely on RC discharge timing. Such approaches are inherently inaccurate due to potentiometer errors when operating in 2-terminal mode. Readings obtained from the potentiometers operated in this mode vary with supply voltage and are subject to noise, drift and temperature variation. Thus, the readings have limited accuracy and this inaccuracy manifests itself as crosshair jitter and drifting of the joystick center position. Another source of error in the conventional approach occurs due to microprocessor measurements of the RC (charge or discharge time).
In one version of the conventional approach, the period of time to charge a capacitor through the variable resistor from 0V to an input logic level threshold of the microcontroller CMOS input is measured. Such an approach introduces additional inaccuracy. Inaccuracy is introduced when measuring the time interval. Also, inaccuracy arises from variations in the level of the voltage source used to charge the capacitor through the variable resistor.
It would be desirable to provide a method and/or apparatus for accurately reading a potentiometer that adds a minimal cost to the circuit.